import AdbToolCtrl
from rich.console import Console
from rich.table import Table
import subprocess
c = Console(color_system='256', style=None)
print("欢迎使用Adb工具箱")
a = AdbToolCtrl.AdbCtrl()
t = Table()
t.add_column('[green]编号')
t.add_column('[yellow]功能')
t.add_column('[red]备注')
t.add_row('[green]0', '[yellow]退出', '[red]exit()-确信[doge]')
t.add_row('[green]1', '[yellow]启动adb并连接', '[red]也可以检测adb设备')
t.add_row('[green]2', '[yellow]激活shizuku', '[red]需要已经启动adb')
t.add_row('[green]3', '[yellow]列出手机上所有包名', '[red]就是列出全部')
t.add_row('[green]4', '[yellow]搜索手机上的包名', '[red]就是上面的功能加个find')
t.add_row('[green]5', '[yellow]重启adb服务', '[red]一般可以解决大部分问题')
t.add_row('[green]6', '[yellow]安装apk', '[red]跳过手机应用安装检测，直接安装!')
t.add_row('[green]7', '[yellow]卸载apk', '[red]跳过应用的流氓禁止，直接卸载!')
t.add_row('[green]8', '[yellow]强制卸载apk', '[red]该指令有风险,如果第7功能执行失败可以使用')
t.add_row('[green]9', '[yellow]直接安装shizuku', '[red]需要已经启动adb,版本v13.5.4.r1049')
t.add_row('[green]10', '[yellow]手机重启', '[red]重启手机')
t.add_row('[green]11', '[yellow]手动执行sh', '[red]需要已经启动adb')
t.add_row('[green]12', '[yellow]输出手机日志', '[red]需要已经启动adb')
t.add_row('[green]13', '[yellow]输出手机进程', '[red]需要已经启动adb')
t.add_row('[green]14', '[yellow]关闭华为健康使用手机悬浮窗', '[red]需要已经启动adb')
while True:
    c.print(t)
    b=input("输入功能标号>")
    if b=="1":
        c.print(a.loader_usb())
    elif b=="2":
        c.print(a.stater_shizuku())
    elif b=="3":
        table = Table()
        table.add_column('[red]应用包名')
        p = a.list_adb_package().replace('\n', '|').split("|")
        for i in p:
            table.add_row('[red]'+i)
        c.print(table)
    elif b=="4":
        inp=input("INP:需要查找的应用包名关键词>")
        table = Table()
        table.add_column('[red]I:带有关键词的包名-搜索:'+inp)
        p = a.list_adb_package_s(inp).replace('\n', '|').split("|")
        for i in p:
            table.add_row('[green]' + i)
        c.print(table)
    elif b=="5":
        c.print(a.restart_adb())
    elif b=="6":
        inp=input("INP:请输入安装apk目录(电脑目录)>")
        a.adb_install(inp)
    elif b=="7":
        inp=input("INP:请输入卸载应用包名(可以使用第4功能查找,注:输入0退出卸载功能)>")
        if inp != 0:
            a.adb_uninstall(inp)
    elif b=="8":
        inp = input("INP:请输入卸载应用包名(可以使用第4功能查找,注:输入0退出卸载功能)>")
        if inp != 0:
            a.adb_uninstall_F(inp)
    elif b=="9":
        a.adb_install("shizuku.apk")
    elif b=="10":
        a.adb_reboot()
    elif b=="11":
        c.print("[green]INP:请输入执行指令(不用加adb shell)>")
        inp=input()
        if "rm" in inp:
            c.print("[yellow]W:检测到可能命令中有rm删除指令,是否执行[N,y]")
            inp=input()
            if inp=="y" or inp=="Y":
                c.print("[green]I:执行!")
                c.print(a.adb_shell(inp))
            else:
                c.print("[red]I/Q:取消执行!")
        else:
            c.print(a.adb_shell(inp))
    elif b=="12":
        c.print("[green]I:下面是手机的日志")
        c.print(a.adb_log())
    elif b=="13":
        c.print("[green]I:下面是手机进程")
        c.print(a.adb_Ps())
    elif b=="14":
        c.print("[green]I:正在关闭华为-健康使用手机")
        a.adb_adbTool_kill_huawei_jiankang()
        c.print("[green]I:成功关闭健康使用手机悬浮窗")
    elif b=="0":
        exit(0)
